Skip to main content

Verify

Every BlanketOps resource is a CRD, so the whole delivery chain from First Delivery is inspectable with kubectl get — no CI dashboard, no log tailing.

Some of these plural names collide with resources from other operators installed alongside the platform (Shipwright's own Build, Kubernetes' own Deployment). Qualify with the API group to be unambiguous:

kubectl get environments.environments.blanketops.dev -n dev
kubectl get gitrepositories.sources.blanketops.dev -n dev
kubectl get githubevents.events.blanketops.dev -n dev
kubectl get builds.environments.blanketops.dev -n dev
kubectl get serviceunits.environments.blanketops.dev -n dev
kubectl get deployments.environments.blanketops.dev -n dev
kubectl get routes.networks.blanketops.dev -n dev
kubectl get domains.networks.blanketops.dev -n dev

Or watch everything reconcile at once:

kubectl get environments.environments.blanketops.dev,gitrepositories.sources.blanketops.dev,githubevents.events.blanketops.dev,builds.environments.blanketops.dev,serviceunits.environments.blanketops.dev,deployments.environments.blanketops.dev,routes.networks.blanketops.dev,domains.networks.blanketops.dev -n dev -w

What "Done" Looks Like

ResourceReady when status.phase is
EnvironmentReady
GitRepositorywebhook registered, no error condition
GitHubEventReady, with status.triggered: true
Buildthe produced BuildRun completes; see Build
ServiceUnitartifact resolved, workload contract valid
Deploymentmanifests reconciled, no drift
RouteReady
DomainReady, with status.certIssued: true

Full phase value tables live on each resource's API reference page.

Digging Into One Resource

kubectl describe environment.environments.blanketops.dev for-kaniko-app-main -n dev

status.conditions on the Environment aggregates per-resource readiness (BuildReady, DeploymentReady, RouteReady, ...) — check there first if the top-level phase is stuck on Pending or Degraded, then drill into whichever condition is False.

If Build or GitHubEvent are stuck Pending, check their ExternalSecret before anything else — a remote key missing from your secret backend (see Environment: Secrets & SecretStore) surfaces there first:

kubectl get externalsecrets -n dev
kubectl describe externalsecret git-ssh-credentials -n dev

Reaching the Workload

Once Route and Domain both report Ready:

curl https://api.dev.example.com/

Tearing Down

Deleting the Environment cascades to every resource it owns:

kubectl delete environment.environments.blanketops.dev for-kaniko-app-main -n dev

Continue to Next Steps.